import BaseEntity from "./BaseEntity.mjs";

/**
 * 任务
 */
export default class Task extends BaseEntity {
    /**
     * 是否是父任务
     * @type { boolean | undefined | null }
     */
    isCollection

    /**
     * 上级任务id
     * @type { number | undefined | null }
     */
    pid

    /**
     * 任务名称
     * @type { string | undefined | null }
     */
    taskName

    /**
     * 任务的站点id
     * @type { number | undefined | null }
     */
    siteId

    /**
     * 站点作品id
     * @type { string | undefined | null }
     */
    siteWorksId

    /**
     * 当任务是父任务时，url存储创建此父任务所使用的url，否则存储的是下载资源的链接（由于存在临时的下载链接，此字段可能没有作用）
     * @type { string | undefined | null }
     */
    url

    /**
     * 状态（0：未开始，1：进行中，2：暂停，3：已完成，4：失败）
     * @type { number | undefined | null }
     */
    status

    /**
     * 保存中的资源id
     * @type { number | undefined | null }
     */
    pendingResourceId

    /**
     * 保存中的文件路径
     * @type { string | undefined | null }
     */
    pendingSavePath

    /**
     * 资源是否支持续传
     * @type { boolean | undefined | null }
     */
    continuable

    /**
     * 插件数据
     * @type { { [key: string]: unknown } | string | undefined | null }
     */
    pluginData

    constructor() {
        super()
        this.isCollection = undefined
        this.pid = undefined
        this.taskName = undefined
        this.siteId = undefined
        this.siteWorksId = undefined
        this.url = undefined
        this.status = undefined
        this.pendingResourceId = undefined
        this.pendingSavePath = undefined
        this.continuable = undefined
        this.pluginData = undefined
    }
}
